/* 
 * File:   Valeur.h
 * Author: ribesg
 *
 * Created on 7 décembre 2011, 14:04
 */

#ifndef VALEUR_H
#define	VALEUR_H

#include <typeinfo>
#include <string>
#include <iostream>
#include <iomanip>

using namespace std;

class Valeur {
public:
    bool estEntiere();
    bool estReelle();
    bool estNumerique();
    bool estChaine();
    bool estCaractere();
    void setValeur(string val);
    virtual ~Valeur() {
    };
};

class ValeurEntiere : public Valeur {
public:
    ValeurEntiere(int valeur = 0);
    int getValeur();
    friend ostream & operator << (ostream & cout, ValeurEntiere val);
private:
    int valeur;
};

class ValeurReelle : public Valeur {
public:
    ValeurReelle(float valeur = 0.0);
    float getValeur();
    friend ostream & operator << (ostream & cout, ValeurReelle val);
private:
    float valeur;
};

class ValeurChaine : public Valeur {
public:
    ValeurChaine(string valeur = "");
    string getValeur();
    friend ostream & operator << (ostream & cout, ValeurChaine val);
private:
    string valeur;
};

class ValeurCaractere : public Valeur {
public:
    ValeurCaractere(string valeur = "\' \'");
    string getValeur();
    friend ostream & operator << (ostream & cout, ValeurCaractere val);
private:
    string valeur;
};



#endif	/* VALEUR_H */

